import { defineStore } from 'pinia'
import type { subsetData } from '../utils/interface'
//  `defineStore()` 的返回值的命名是自由的
// 但最好含有 store 的名字，且以 `use` 开头，以 `Store` 结尾。
// (比如 `useUserStore`，`useCartStore`，`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。
import { ref, computed } from 'vue';

export const useSubsetStore = defineStore('subsets', () => {
  // 状态定义
  const count = ref(0); //未分类数量
  const data = ref<subsetData[]>([]);
//获取文章已发布和未发布的状态数量
  // Getters
  const exclude = computed(() => {
    const ids: number[] = [];
    let uncategorizedCount = count.value;
    for (const item of data.value) {
      ids.push(item.id);
      uncategorizedCount -= item.value;
    }
    return { id: ids.join(','), name: '未分类', count: uncategorizedCount };
  });

  // Actions
  function subsetName(id?: number |undefined): string {
    const item = data.value.find(item => item.id === id);
    return item ? item.name : '未分类';
  }

  return { count, data, exclude, subsetName };
});
